package com.atguigu.rabbitmq.two;

import com.atguigu.rabbitmq.util.RabbitMqUtils;
import com.rabbitmq.client.Channel;

import java.util.Scanner;

/**
 * 生产者 发送大量的消息
 */
public class Task01 {

    // 队列名称
    public static final String QUEUE_NAME = "hello";

    // 发送大量消息
    public static void main(String[] args) throws Exception {
        // 创建通道
        Channel channel = RabbitMqUtils.getChannel();

        /**
         * 生成一个队列
         * 1. 队列名称
         * 2. 队列里面的消息是否持久化（磁盘），默认情况信息存储在内存中
         * 3. 该队列是否只供一个消费者消费，是否进行消息的共享， true可以多个消费者消费，true 就是不准
         * 4. 是否自动删除 最后一个消费责断开连接后 该对应是否自动删除，true自动删除，反只就不自动删除
         * 5。其他参数，暂时没用上
         */
        channel.queueDeclare(QUEUE_NAME,false,false,false,null);

        // 冲控制台中接受消息
        Scanner scanner = new Scanner(System.in);

        // 发送消息
        while (scanner.hasNext()) {
            /**
             * 发送一个消息
             * 1. 发送到哪一个交换机，本次为默认 不写
             * 2. 路由的Key值是哪个，本次是队列的名称
             * 3. 其他参数信息
             * 4. 发送消息的消息体
             */
            channel.basicPublish("",QUEUE_NAME,null,scanner.next().getBytes());
        }
    }
}
